/*******************************************************************************
  * 文件：NetComm_Cmd.h
  * 作者：zyz
  * 版本：v1.0.0
  * 日期：2017-08-03
  * 说明：命令
*******************************************************************************/
#ifndef __NETCOMM_CMD_H
#define __NETCOMM_CMD_H
/* 头文件 --------------------------------------------------------------------*/
#include "NetComm_Typedefine.h"

/* 宏定义 --------------------------------------------------------------------*/
// 命令
#define U8_NETCOMM_CMD_01_SET_DEV_STATUS            ((U8) 0x01)  // 设置设备状态
#define U8_NETCOMM_CMD_02_REPLY_DEV_STATUS          ((U8) 0x02)  // 应答设备状态
#define U8_NETCOMM_CMD_03_INVALID_CMD               ((U8) 0x03)  // 无效命令
#define U8_NETCOMM_CMD_04_RPT_ALARM_STATUS          ((U8) 0x04)  // 汇报报警状态
#define U8_NETCOMM_CMD_05_ACK                       ((U8) 0x05)  // 确认帧
#define U8_NETCOMM_CMD_06_RPT_STATUS_INFO           ((U8) 0x06)  // 汇报状态信息
#define U8_NETCOMM_CMD_09_STOP_ALARM                ((U8) 0x09)  // 停止报警
#define U8_NETCOMM_CMD_11_MODULE_DOWNWARD           ((U8) 0x11)  // 模块下行
#define U8_NETCOMM_CMD_12_DEV_UPWARD                ((U8) 0x12)  // 设备上行
#define U8_NETCOMM_CMD_13_MODULE_QUERY              ((U8) 0x13)  // 模块查询
#define U8_NETCOMM_CMD_14_MODILE_QUERY_ACK          ((U8) 0x14)  // 模块查询应答
#define U8_NETCOMM_CMD_15_DEV_QUERY                 ((U8) 0x15)  // 设备查询
#define U8_NETCOMM_CMD_16_DEV_QUERY_ACK             ((U8) 0x16)  // 设备查询应答 
#define U8_NETCOMM_CMD_60_GROUP_CMD                 ((U8) 0x60)  // 组命令
#define U8_NETCOMM_CMD_61_QUERY_DEV_VER             ((U8) 0x61)  // 查询设备版本
#define U8_NETCOMM_CMD_62_REPLY_DEV_VER             ((U8) 0x62)  // 应答设备版本
#define U8_NETCOMM_CMD_63_GET_ENCRYPT_PARA          ((U8) 0x63)  // 获取加密参数
#define U8_NETCOMM_CMD_64_SET_ENCRYPT_PARA          ((U8) 0x64)  // 设置加密参数
#define U8_NETCOMM_CMD_70_QUERY_DEV_ID              ((U8) 0x70)  // 查询设备识别码
#define U8_NETCOMM_CMD_71_REPLY_DEV_ID              ((U8) 0x71)  // 应答设备识别码
#define U8_NETCOMM_CMD_73_QUERY_ALARM_STATUS        ((U8) 0x73)  // 查询报警状态
#define U8_NETCOMM_CMD_74_REPLY_ALARM_STATUS        ((U8) 0x74)  // 应答报警状态
#define U8_NETCOMM_CMD_7C_CFG_DEV_STATUS_RPT        ((U8) 0x7C)  // 配置设备状态汇报
#define U8_NETCOMM_CMD_7D_REPLY_CFG_DEV_STATUS_RPT  ((U8) 0x7D)  // 应答配置设备状态汇报
#define U8_NETCOMM_CMD_F0_QUERY_NET_STATUS           ((U8) 0xF0)  // 查询网络状态
#define U8_NETCOMM_CMD_F1_REPLY_NET_STATUS           ((U8) 0xF1)  // 应答网络状态
#define U8_NETCOMM_CMD_F2_ENTER_CFG_MODE            ((U8) 0xF2)  // 进入配置模式
#define U8_NETCOMM_CMD_F3_REPLY_ENTER_CFG_MODE      ((U8) 0xF3)  // 应答进入配置模式
#define U8_NETCOMM_CMD_F4_ENTER_WORK_MODE           ((U8) 0xF4)  // 进入工作模式
#define U8_NETCOMM_CMD_F5_REPLY_ENTER_WORK_MODE     ((U8) 0xF5)  // 应答进入工作模式
#define U8_NETCOMM_CMD_F7_RPT_NET_STATUS            ((U8) 0xF7)  // 汇报网络状态
#define U8_NETCOMM_CMD_F8_CLEAR_CFG_INFO            ((U8) 0xF8)  // 清除配置信息
#define U8_NETCOMM_CMD_FA_CFG_BIG_DATA_RPT          ((U8) 0xFA)  // 配置大数据汇报
#define U8_NETCOMM_CMD_FB_REPLY_CFG_BIG_DATA_RPT    ((U8) 0xFB)  // 应答配置大数据汇报

// OTA相关命令
#define U8_NETCOMM_CMD_EB_QUERY_MACHINE_INFO        ((U8) 0xEB)  // 查询整机信息
#define U8_NETCOMM_CMD_EC_REPLY_MACHINE_INFO        ((U8) 0xEC)  // 应答整机信息
#define U8_NETCOMM_CMD_E9_QUERY_SLAVE_INFO          ((U8) 0xE9)  // 查询子机信息
#define U8_NETCOMM_CMD_EA_REPLY_SLAVE_INFO          ((U8) 0xEA)  // 应答子机信息
#define U8_NETCOMM_CMD_E1_REQ_UPGRADE               ((U8) 0xE1)  // 请求升级
#define U8_NETCOMM_CMD_E2_RES_UPGRADE               ((U8) 0xE2)  // 响应升级
#define U8_NETCOMM_CMD_E7_REQ_SWITCH_BAUDRATE       ((U8) 0xE7)  // 请求切换波特率
#define U8_NETCOMM_CMD_E8_RES_SWITCH_BAUDRATE       ((U8) 0xE8)  // 响应切换波特率
#define U8_NETCOMM_CMD_E5_REQ_GET_FIRMWARE          ((U8) 0xE5)  // 请求获取固件
#define U8_NETCOMM_CMD_E6_RES_GET_FIRMWARE          ((U8) 0xE6)  // 响应获取固件
#define U8_NETCOMM_CMD_ED_RPT_UPGRADE_RESULT        ((U8) 0xED)  // 上报升级结果
#define U8_NETCOMM_CMD_EF_REPLY_UPGRADE_RESULT      ((U8) 0xEF)  // 应答升级结果

//CMD:0x01 设置设备的子命令
#define U16_NETCOMM_CMD_01_GET_STATUS               ((U16) 0x4D01)//查询设备属性
#define U16_NETCOMM_CMD_01_SET_POWER                ((U16) 0x5D00)//整机开关
#define U16_NETCOMM_CMD_01_SET_LEFTFIRE             ((U16) 0x5D02)//左火点火/熄灭
#define U16_NETCOMM_CMD_01_SET_MIDFIRE              ((U16) 0x5D08)//中火点火/熄灭
#define U16_NETCOMM_CMD_01_SET_RIGHTFIRE            ((U16) 0x5D03)//右火点火/熄灭
#define U16_NETCOMM_CMD_01_SET_LEFTTIMINGTIME       ((U16) 0x5D06)//左灶定时时间
#define U16_NETCOMM_CMD_01_SET_MIDTIMINGTIME        ((U16) 0x5D0A)//中灶定时时间
#define U16_NETCOMM_CMD_01_SET_RIGHTTIMINGTIME      ((U16) 0x5D07)//右灶定时时间

//CMD:0x11模块下行的子命令
#define U16_NETCOMM_CMD_11_MSG_LOG_RESULT           ((U16) 0x2001) //消息注册（销）结果
#define U16_NETCOMM_CMD_11_MSG_NOTIFY               ((U16) 0x2002) //消息告知
#define U16_NETCOMM_CMD_11_FILE_DOWNLOAD_ASK_RESULT ((U16) 0x2006) //文件下载请求处理结果
#define U16_NETCOMM_CMD_11_FILE_TRANSFER_NOTIFY     ((U16) 0x2008) //文件传输告知

//CMD:0X12设备上行的子命令
#define U16_NETCOMM_CMD_12_MSG_LOG                  ((U16) 0x2000) //消息注册（销）
#define U16_NETCOMM_CMD_12_MSG_HANDLE_RESULT        ((U16) 0x2003) //消息处理结果
#define U16_NETCOMM_CMD_12_FILE_DOWNLOAD_ASK        ((U16) 0x2005) //文件下载请求
#define U16_NETCOMM_CMD_12_FILE_TRANSPORT_RESULT    ((U16) 0x2009) //文件传输结果

//CMD:0x13模块查询的子命令
#define U16_NETCOMM_CMD_13_FILE_INFOR_ASK           ((U16) 0x2007) //获取下载文件信息

//CMD:0x14模块查询应答子命令
#define U16_NETCOMM_CMD_14_FILE_INFOR_REPLY         ((U16) 0x2007) //应答下载文件信息

//CMD:0x15设备查询子命令
#define U16_NETCOMM_CMD_15_MSG_BODY_ASK             ((U16) 0x2004) //获取消息包
#define U16_NETCOMM_CMD_15_FILE_BODY_ASK            ((U16) 0x200A) //获取文件包

//CMD:0x16设备查询应答子命令
#define U16_NETCOMM_CMD_16_MSG_PACK_REPLY           ((U16) 0x2004) //消息包应答
#define U16_NETCOMM_CMD_16_FILE_PACK_REPLY          ((U16) 0x200A) //文件包应答

//CMD:0xE1请求升级的子命令
#define U8_NETCOMM_CMD_E1_UPGRADE_IDLE              ((U8) 0x00) //空闲升级
#define U8_NETCOMM_CMD_E1_UPGRADE_NOW				((U8) 0x01) //立即升级
#define U8_NETCOMM_CMD_E1_FIRMWARE_NOTDOWNLOAD		((U8) 0x00) //升级包未下载
#define U8_NETCOMM_CMD_E1_FIRMWARE_DOWNLOAD			((U8) 0x64) //升级包已下载

// 无错误
#define STR_NETCOMM_NO_ERROR                        "000000"    //消息接收正常，没有错误
//上行 底板错误码
#define STR_NETCOMM_MSG_FORMAT_ERROR                "H33002"    //消息格式错误，消息解析失败
#define STR_NETCOMM_FILE_FORMAT_ERROR               "H33003"    //文件格式错误，文件格式不支持
#define STR_NETCOMM_AUTOGRAPTH_FAIL                 "H33004"    //签名认证失败
#define STR_NETCOMM_FILE_TRANS_FAIL                 "H33007"    //文件传输失败
#define STR_NETCOMM_MODULE_ACK_OVERTIME             "H33010"    //wifi模块ACK超时
#define	STR_NETCOMM_COMM_ERROR                      "H33097"   	//底板与WiFi模块交互的其他异常
#define STR_NETCOMM_DEV_ERROR                       "H33099"    //底板其他异常
//  文件下载错误码
#define STR_NETCOMM_FILE_DOWNLOAD_FAIL              "H33005"    //文件下载失败
#define STR_NETCOMM_FILE_CHECK_FAIL                 "H33006"    //文件校验失败

// 文件信息标识
#define U16_NETCOMM_FILEINFOR_SIZE                  ((U16) 0x0001) //文件大小
#define U16_NETCOMM_FILEINFOR_URL_LEN               ((U16) 0x0002) //URL长度
#define U16_NETCOMM_FILEINFOR_URL                   ((U16) 0x0003) //URL
#define U16_NETCOMM_FILEINFOR_ALG                   ((U16) 0x0004) //校验算法
#define U16_NETCOMM_FILEINFOR_HASH                  ((U16) 0x0005) //hash校验
#define U16_NETCOMM_FILEINFOR_TOKEN                 ((U16) 0x0006) //Token认证


/* 类型定义 ------------------------------------------------------------------*/
/* 变量定义 ------------------------------------------------------------------*/
/* 函数声明 ------------------------------------------------------------------*/

#endif    /*** #ifndef __NETCOMM_CMD_H ***/
